"""
设计一个图形类（Shape），包含计算面积的方法（calculate_area）。然后设计三个子类：圆类（Circle）、
矩形类（Rectangle）和三角形类（Triangle），分别实现计算面积的方法。要求实现以下功能：

分别创建圆、矩形和三角形的对象，并设置它们的相关属性（例如半径、长和宽、底和高等）。
分别调用这些对象的计算面积方法，并打印出计算结果。
"""
import math
from abc import abstractmethod


class Shape:

    @abstractmethod
    def calculate_area(self):
        raise NotImplementedError()


class Circle(Shape):

    def calculate_area(self):
        return math.pow(self.r) * math.pi

    def __init__(self, r):
        self.r = r
